﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using CrmContacto.WebApp.Code.Sap;
using Web.CrmContacto.Code.Sap;
using Web.CrmContacto.Code;
using CrmContacto.Contracts.Contracts.Search;

namespace CrmContacto.WebApp.Code
{
    public class PaisFront
    {
        public int PaisId { get; set; }

        public int CompanyId { get; set; }

        public static PaisFront GetPais(int paisId, int companyId)
        {
            if (paisId == 55)
            {
                return new PaisFrontBrasil() { PaisId = paisId, CompanyId = companyId };
            }
            else
            {
                return new PaisFront() { PaisId = paisId, CompanyId = companyId };
            }
        }

        public virtual List<SapCodigoProductoCompleto> GetProductos(SapCheckMantRDescParam search)
        {
            List<SapCodigoProductoCompleto> returnList;
            SAPWebServiceHelper wsHelper = new SAPWebServiceHelper();
            returnList = wsHelper.ZWS_PRODUCTOS(search);

            return returnList;
        }
    }

    public class PaisFrontBrasil : PaisFront
    {
        public override List<SapCodigoProductoCompleto> GetProductos(SapCheckMantRDescParam searchSAP)
        {
            WebServiceHelper helper = new WebServiceHelper();
            ProductoSearch search = new ProductoSearch();
            search.EmpresaId = this.CompanyId;
            search.Codigo = searchSAP.Producto;
            search.Nombre = searchSAP.Descripcion;
            var productoList = helper.GetProductos(search);

            List<SapCodigoProductoCompleto> sapProductoList = new List<SapCodigoProductoCompleto>();

            foreach (var prod in productoList)
            {
                SapCodigoProductoCompleto sapProductoCompleto = new SapCodigoProductoCompleto();
                sapProductoCompleto.Codigo = prod.Codigo;
                sapProductoCompleto.Descripcion = prod.Nombre;
                sapProductoCompleto.Id = prod.Id;                
                sapProductoList.Add(sapProductoCompleto);
            }

            return sapProductoList;
        }
    }
}